#include<bits/stdc++.h> 
using namespace std;
double dis(double (*)[2], double (*)[2]);//函数声明，计算每两个点的距离
int main(){
    int n;
    cin >> n;
    double a[9999][2];//二维数组的形式存储坐标点
    double result[50];//存储任意两点之间的距离
    //输入
    for (int i=0;i<n; i++){
        for (int j=0; j<2; j++){
            cin >> a[i][j];
        }
    }
    //同时将每个坐标点的x,y值，以地址的形式传递给p和q
    double (*p)[2];
    p= &a[0];
    double (*q)[2];
    q= &a[0];
    //遍历每个坐标点，求距离
    for (int i = 0; i < n; i++){
        for (int j = 0; j< n; j++){
            result[i*n+j] = dis(p,q);//调用外部库 
            q = q + 1;
        }
        p = p + 1;
        q = &a[0];
    }
    //判断最大值，并输出
    double max=0;
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){   
            if (result[i*n + j]>max)
                max = result[i*n + j];//类似谁是最大数的做法 
        }
    }
	printf("%.4lf\n",max); 
    return 0;
}
//两点之间距离函数的定义
double dis(double (*b)[2], double (*c)[2]){
    double distance = 0;
    distance = sqrt((b[0][0] - c[0][0])*(b[0][0] - c[0][0]) + (b[0][1] - c[0][1])*(b[0][1] - c[0][1]));
    return distance;
}

